// 作业代码文件
// MyPromise 验证
const MyPromise = require('./MyPromise.js')

// MyPromise.reject(MyPromise.resolve(1)).then((value) => {
//     console.log('value',value)
// }).catch((err) => {
//     console.log('err',err)
// })

// const p1 = new MyPromise((resolve, reject) => {
//     setTimeout(reject, 500, "one"); 
// });
// const p2 = new MyPromise((resolve, reject) => {
//     setTimeout(reject, 100, "two"); 
// });
// MyPromise.race([p1,p2]).then((value) => {
//     console.log('value',value)
// }).catch((err) => {
//     console.log('err',err)
// })

// function p3 () {
//     return new MyPromise(function(resolve, reject) {
//         setTimeout(function() {
//             resolve('p3')
//         }, 2000)
//     })
// }
// function p4 () {
//     return new MyPromise(function(resolve, reject) {
//         resolve('p4')
//     })
// }
// MyPromise.all(['a', 'b', p3(), p4(), 'c']).then(reslut => console.log(reslut))


const pErr = new MyPromise((resolve, reject) => {
    reject("总是失败");
  });
  
  const pSlow = new MyPromise((resolve, reject) => {
    setTimeout(reject, 500, "最终完成");
  });
  
  const pFast = new MyPromise((resolve, reject) => {
    setTimeout(resolve, 100, "很快完成");
  });
  
  MyPromise.any([pErr, pSlow, pFast]).then((value) => {
    console.log(value);
    // pFast fulfils first
  }).catch((err) => {
    console.log(err);
  })

